noitide (Normal User)
Pro
Messaggi: 107
Iscritto: 24/06/2009
|
Buona sera a tutti. ho questo problema: ho la necessità di ricavare una lista di cartelle da un server e poi all'interno di ognuna di questa cartella devo capire se un file esiste, così ho scritto questo codice
Codice sorgente - presumibilmente VB.NET |
Dim asd As FtpWebRequest = FtpWebRequest.Create("ftp://......../TeamSpeak/") Dim sps As New WebClient With {.Credentials = New NetworkCredential("user", "password")} asd.Credentials = New NetworkCredential("user", "password") asd.Method = WebRequestMethods.Ftp.ListDirectory Dim leggi As New StreamReader(asd.GetResponse.GetResponseStream) Dim tot() As String = leggi.ReadToEnd.Split(vbCrLf) For Each a As String In tot Try sps.DownloadString("ftp://....../TeamSpeak/" + a + "/Stevenking.txt") ComboBox1.Items.Add(a) Catch ex As Exception TextBox1.Text = (ex.Message) End Try Next
|
il problema è ke questo codice sembra funzionare solo una volta, cioè mi spiego meglio: il ciclo for sembra venga eseguito una sola volta e a tutte le volte successive alla riga
Codice sorgente - presumibilmente Plain Text |
sps.DownloadString("ftp://....../TeamSpeak/" + a + "/Stevenking.txt")
|
mi da questo errore: "Errore del server remoto: (500) Errore di sintassi. Comando non riconosciuto.."
cosa sbaglio? posso controllare l'esistenza del file in un modo più comodo e intelligente?
(ho già provato con webrequest ma anke li mi da lo stesso errore) grazie 1000...
P.S. qualcuno saprebbe poi consigliarmi una buona dll per gestire le connessioni ftp (tipo chilkat .net) grautita? sempre che esistano.. grazie Ultima modifica effettuata da noitide il 09/12/2009 alle 15:43 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
|
|
noitide (Normal User)
Pro
Messaggi: 107
Iscritto: 24/06/2009
|
cioè? non ho capito cosa intendi dire. (avevo già anke provato con ftpwebrequest ma non cambia nulla). comnq il problema ke ho è capire se un file (.txt) esiste o no su un server e io provo a usare quella struttura try con downloadstring in modo che mi restituisca un'eccezione dovuta al filenotfound. ma purtroppo si inceppa prima. |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
|
|
noitide (Normal User)
Pro
Messaggi: 107
Iscritto: 24/06/2009
|
allora.. ho modificato così il ciclo For il resto l'ho lasciato invariato
Codice sorgente - presumibilmente VB.NET |
For Each a As String In tot Dim sps As FtpWebRequest = WebRequest.Create("ftp://spsracing.net/httpdocs/spsync/TeamSpeak/" + a + "/Stevenking.txt") sps.Credentials = New NetworkCredential("user", "password") sps.Method = WebRequestMethods.Ftp.GetFileSize Try Dim response As FtpWebResponse = sps.GetResponse ComboBox1.Items.Add(a) Catch ex As WebException Dim response As FtpWebResponse = ex.Response If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then MsgBox("file inesistente") End If MsgBox(ex.Message) End Try Next
|
purtroppo però da ankora lo stesso errore, cioè non genera l'eccezione ke si aspetta il codice (cioè file inesistente) ma genera l'altra errore 500... Ultima modifica effettuata da noitide il 09/12/2009 alle 17:23 |
|